1. Technical Field
The present invention relates to computer network environments. More specifically, the present invention relates to sharing software applications over a server.
2. Description of Related Art
In some computer network environments, system administrators will install applications on a server's shared file system for use by all users, rather than have the application installed on each client's hard drive. By sharing the application on a server, the administrator can improve overall manageability of the environment. The administrator can control which users have access to this application via access control to the shared file system. In addition, the administrator can control and easily upgrade the application with fixes or new support. When the shared application is updated, all users in the environment will be immediately affected by this change. Since all users execute the same level of the application, end user support is greatly improved.
However, many Windows applications cannot just be run from a shared file system. Many applications, when installed, require changes to the base operating system configuration. These changes can be updates to the system registry, files installed in an OS-specific location (e.g. Fonts) or updates to existing system files (e.g. Visual Basic Runtime DLL). Since the user does not install the application on their local system, for they are just executing the application from a share file system, these required operating system configuration changes are not made on the client being used. Thus, when the administrator provides a user access to an application on a server's share file system, the user will be unable to execute this application unless the client base system has the appropriate support installed, i.e. the modifications to the system files that the application requires.
Some applications have tried to address this problem by providing some form of a node install for a shared application. With this support, the user must perform a minimal install on the client prior to using the shared application. Even if the node install support is provided, this support is not satisfactory in some environments. In a restricted end-user environment, the user might not have the appropriate access to install the client node support. In a roaming user environment, when a user logs onto a client machine that has not had the application's client node support installed, the user must install this support for each machine that he or she logs onto, prior to using this application. Lastly, the end user's skills might not be satisfactory to install the node support without error.
Other solutions have been provided to try to address the problems noted above. Management software is provided that will enable an administrator to distribute software updates to the client. This approach is defined by the administrator and controlled when the updates are sent to the client. Not only does this solution require setup and planning on the system administrator's part, all client machines have the software distributed potentially at different times, based on the parameter(s) defined by the administrator. In this case, when a user roams to a machine that has not yet been updated by the administrator, the user will be unable to use the server-based application until such a time as the administrator updates that machine.
In some cases, application loaders were defined that would perform the appropriate client-side modifications upon instantiation of the application. In this case, if a reboot was necessary, large amounts of data must be transferred to the client machine. The user could potentially experience this productivity degradation for each application being launched.
Therefore, it would be advantageous to have a process and mechanism to dynamically update a Windows system with user specific application enablement support. This process would work such that when a user logs into a heterogeneous server from a Windows client, a mechanism would dynamically update the client operating system configuration to provide the necessary application enablement support for the suite of applications assigned by the system administrator. Thus, by the time the desktop program presented the user with the user's specific desktop configuration, the client would be enabled to run all assigned server-based applications.